var mongoose = require('mongoose');
var Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/pie',function(err){
	if(err){
		console.log(err);
	}
	else{
		console.log('connect to mongodb succeed');
	}
});
/*
    我们的目标是: 聊天记录云共享!
*/
var userSchema = new Schema({
    puid: {type: String},
    /*
      验证用户的唯一标示符
    */
    sex: {type: Number},
    /*用户性别*/
    socketId: {type: String},
    /*
      用户在线时的通信管道标示符,只记录最新连接的socketId
    */
    platform: {type: String},
    /*
      用户上一次连接使用的平台,目前只支持android和ios
    */
    messageReplied: {type: Number},
    /*
      标记最新从服务器发出的待接收消息是否收到用户的回应
      若值为false则服务器不再向继续发出新的消息,直到用户重新连接
    */
    curContactIndex: {type: Number},
    /*
      当前通信对象在用户通讯录(contacts)中的位置
    */
    videos: [String],
    contacts:[
      {
        targetId: {type: String},
        /*
          对方的唯一标示符
        */
        nextMessageIndex: {type: Number},
        /*
          下一条待接收消息的位置
        */
        messageList:[{
          status: {type: Number},
          /*
            inMessage(0):对方发来的信息
            onSend(1):信息发送中 //这个状态是不可能出现在服务器的,但可能出现在客户端
            sendSuccess(2):信息发送成功,指被服务器接收
            received(3):信息已被对方接收
            read(4):信息已被对方查看
          */
          contentType: {type: Number},
          /*
            消息属性,0为文本,1为图像,2为音频,3为视频
          */
          content: {type: String},
          /*
            消息内容
          */
          time:{type: String}
        }]
      }
    ],
    npcTalk:[{
      from: {type: String},
      content: {type: String},
      time: {type: String}
    }],
    questions:[String]
});
var userModel = mongoose.model('user',userSchema);
exports.userModel  = userModel;

var errorSchema = new Schema({
  err:{type: String},
  reason:{type: String},
  time:{type: String}
});
var errorModel = mongoose.model('error',errorSchema);
exports.errorModel  = errorModel;

var questionSchema = new Schema({
  title: {type: String},
  /*提问标题*/
  author: {type: String},
  /*提问人*/
  type: {type: Number},
  /*提问方式:匿名与否*/
  status: {type: Number, default: 2},
  /*
    0 :  正在审核中
    1 :  审核失败,此时应通知作者并告知失败原因
    2 :  审核通过,进入等待队列,此时应通知作者并告知展示时间
    3 :  正在展示中
    4 :  已经展示完成,但仍可以被检索,回复
  */
  year: {type: Number},
  month: {type: Number},
  date: {type: Number},
  /*该问题展示的日期*/
  comments: [{
    content: {type: String},
    /*回复内容*/
    author: {type: String},
    /*回复人*/
    type: {type: Number},
    /*回复方式:匿名与否*/
    upList: [String],
    /*顶此回复的人员列表*/
    downList: [String],
    /*踩此回复的人员列表*/
    time:{type: String}
    /*回复发布时间*/
  }]
});
var questionModel = mongoose.model('question',questionSchema);
exports.questionModel  = questionModel;